The present invention relates generally to computer networks and more particularly to techniques for performing high speed forwarding of traffic in an ATM network providing local area network emulation (LANE) services.
The Local Area Network Emulation (LANE) standard/protocol emulates a local area network (LAN) over an Asynchronous Transfer Mode (ATM) network. LANE thus allows existing LAN software applications to take advantage of the high bandwidth and quality of service offered by ATM networks without having to make significant changes to the LAN software applications. LANE allows ATM equipment and networks to be interconnected to existing LANs, and further allows logically separate LANs to be connected via an ATM backbone network. An emulated LAN (ELAN) provides for the communication of data frames among all users of the ELAN similar to a physical LAN.
Presently, LANE emulates either a Ethernet/IEEE 802.3 LAN or a IEEE 802.5 (Token Ring) type LAN. An emulated LAN typically comprises at least one LAN emulation client (LEC), a LAN emulation server (LES), a LAN emulation configuration server (LECS), and a broadcast and unknown server (BUS). The aforementioned components are logical entities and may be implemented in a single physical unit or in separate physical units.
A LEC represents one or more users requiring LAN emulation services. A LEC may be an end workstation, a switch, a network interface card, or even an ATM bridge connecting an ATM network to a legacy LAN. A LEC provides data forwarding, address resolution, and other networking functions for its associated end users. A LEC is generally identified by a LEC identifier (LEC ID) which is unique to the LEC within the network. A LEC is generally assigned to a LES. Communications between LECs are usually performed over ATM virtual channel connections (VCCs).
A LES implements the control coordination function for an emulated LAN. An LES provides address registration services allowing participants of an emulated LAN to register their media access control (MAC) and ATM addresses. An LES also provides address resolution services by implementing the address resolution protocol (ARP) which facilitates conversion between MAC and ATM addresses. A LEC typically queries the LES to which it is assigned to resolve MAC addresses. Communication between a LEC and a LES is usually performed over control VCCs established between the LEC and the LES. Each emulated LAN typically has one LES.
A LECS provides configuration services for the emulated LAN including assignment of individual LECs to various emulated LANs by giving the LECs the ATM address of an LES associated with the particular emulated LAN along with necessary operating parameters such as the type of the emulated LAN and the maximum frame size. A network typically has one LECS.
A BUS handles broadcasts and multicasts in the network. Data frames are generally sent to the BUS when either the information is to be transferred to workstations in the emulated LAN or when a source LEC has sent an ARP request to the LES, but does not wish to wait for a response before starting the data transfer to the destination LEC.
In order to route data frames from a source to a destination in an emulated LAN, each participant of the emulated LAN, for example, workstations, switches, network interface cards, and bridges, implements a LAN emulation protocol stack which performs the functions necessary to communicate the data frames from the source to the destination. A LAN emulation protocol stack is made of one or more protocol layers which provide services for communicating information to the appropriate destination. The functions corresponding to the protocol stack are generally executed by a microprocessor associated with the emulated LAN participant equipment.
With the ever increasing amount of pipe bandwidth available for data communication, it is desired that the protocol stack processing be performed at broadband speeds. For example, LAN traffic generated by 100 Bbps and Gigabit Ethernet migration are now required to fill multiple OC-3 or OC-12 SONET backbones in corporate enterprises. High-end routers are required to be able to feed OC-12 (622 Mbps) SONET pipes and OC-48 (2.4 Gbps) SONET pipes with millions of small packets per second.
Unfortunately, conventional protocol stack processing has been unable to proportionately scale with increasing bandwidth requirements. As a result, the slower processing speeds associated with protocol stack processing reduce the efficiency of bandwidth usage. Thus, there is a need for a technique which reduces the time associated with protocol stack routing and improves bandwidth usage in an emulated LAN network environment.
The present invention provides techniques to reduce the time associated with protocol stack routing in an emulated LAN network environment. According to the teachings of the present invention, a technique is described for performing cut-through forwarding of LAN emulation (LANE) packets without incurring the overhead associated with LANE protocol stack assisted routing. The teachings of the present invention may be used for performing cut-through forwarding of packets received from an Ethernet (including a Gigabit Ethernet) and outbound to the ATM network, or of packets received from the ATM network and outbound to the Ethernet (including a Gigabit Ethernet). The routing of LANE packets can accordingly be achieved in an expedited manner approaching broadband speeds.
According to an aspect of the present invention, a network processor coupled to an Ethernet and an ATM network supporting LANE services is responsible for performing cut-through forwarding of packets received from the Ethernet and outbound to the ATM network. In one embodiment, the network processor uses information contained in the header of the packet to determine if the packet is of type LANE or virtual LAN (VLAN). If the packet is of type LANE or VLAN, the network processor uses the VLAN ID in the packet header to determine the LANE emulation client (LEC) identifier (LEC ID) for the packet. The network processor also determines the virtual channel connection (VCC) information for the packet based on the medium access address (MAC) address contained in the packet header. The network processor may then use the LEC ID and the VCC information to forward the packet to its destination without having to go through protocol stack assisted routing.
According to another aspect of the present invention, the network processor stores LEC information for the LECs coupled to the ATM network. The LEC information contains LEC IDs for the LECs along with the VLAN IDs. Accordingly, in one embodiment, the present invention determines the LEC ID for the packet by using the VLAN ID of the packet as an index to the LEC information. The LEC ID may then be used for packet forwarding according to the teachings of the present invention.
According to yet another aspect of the present invention, the network processor stores LEC up-link information which facilitates mapping of MAC addresses to VCC information. In one embodiment, this information is stored in a content addressable memory (CAM) coupled to a packet forwarding subsystem within the network processor. In order to determine VCC information for the packet, the packet forwarding subsystem uses the MAC address of the packet as an input for CAM lookup. If the output of the CAM lookup indicates a hit, the CAM lookup output is used to determine the VCC information. In one embodiment, the CAM lookup output acts as an index to the VCC information for the input MAC address. The VCC information may then be used by the network processor for packet forwarding according to the present invention.
According to yet another aspect of the present invention, a network processor coupled to an Ethernet and an ATM network supporting LANE services is responsible for performing cut-through forwarding of packets received from an ATM network and outbound to the Ethernet. In one embodiment, the network processor uses information contained in the header of the packet to determine the interface address for the packet. Based on the interface address, the network processor determines if the destination of the packet is the network processor. If so, the packet is queued to the processor of the network processor for further processing. If the network processor is not the destination, the network processor forwards the packet to its destination via the Ethernet.
According to another aspect of the present invention, the network processor performs echo suppression to determine if the packet is a echo or loopback packet. The packet may be discarded if it is an echo or loopback packet. If the packet is not a loopback or echo packet, the packet is forwarded via the Ethernet. In one embodiment, echo suppression is achieved by comparing the LEC ID of the packet with the LEC ID stored in the LEC information corresponding to the packet. If the two LEC IDs are the same, this indicates a loopback or echo packet, and the packet is accordingly discarded.
According to yet another aspect of the present invention, the network processor may perform 801.1q tag discovery to determine the tag associated with the packet. Based on the tag, the network processor then determines if the packet violates any ingress policy. The packet may be discarded if an ingress policy is violated.
According to still another aspect of the present invention, the network processor adds a 802.1q tag to non-tagged packets. The network processor may then perform spanning tree detection based on the packet. The packet may then be forwarded based on the results of the spanning tree detection.
Other aspects and advantages of the invention will be better understood by reference to the following detailed description and the accompanying figures.